# Качалки для галерей #


Bash-скрипты для выкачивания подборок по автору/тегу/etc.

----------

## Общее для всех скриптов ##

**Коды возврата:**

Все скрипты используют единую систему кодов возврата при возникновении ошибок.

1 - не все параметры указаны

2 - не удалось авторизоваться на сайте

3 - по набору тегов ничего не найдено

4 - попытка качать в каталог, в котором уже работает другая копия скрипта

5 - не найден конфиг

6 - общая ошибка

**Конфиг:**

Файл ~/.config/boorulogins.conf используется всеми скриптами, для работы которых требуется авторизация. Названия параметров и требуемые значения указаны в описании к каждому скрипту.

## get.danbooru.sh ##
Качалка для сайта [https://danbooru.donmai.us/](https://danbooru.donmai.us/).

**Использование:**
> get.danbooru.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

**Конфиг:**

> danlogin=ВАШ ЛОГИН
> 
> danapikey=ВАШ API-КЛЮЧ

API-ключ находится на странице профиля.

## get.e621.sh ##
Качалка для сайта [https://e621.net/](https://e621.net/).

**Использование:**
> get.e621.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

**Конфиг:**

> e621login=ВАШ ЛОГИН
> 
> e621api=ВАШ ПАРОЛЬ

## get.gelbooru.sh ##
Качалка для сайта [https://gelbooru.com/](https://gelbooru.com/).

**Использование:**
> get.gelbooru.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

**Конфиг:**

> gellogin=ВАШ ЛОГИН
> 
> gelpass=ВАШ ПАРОЛЬ

## get.konachan.sh ##
Качалка для сайта [https://konachan.com/](https://konachan.com/).

**Использование:**
> get.konachan.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

## get.rule34.sh ##
Качалка для сайта [https://rule34.xxx/](https://rule34.xxx/).

**Использование:**
> get.rule34.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

## get.xbooru.sh ##
Качалка для сайта [https://xbooru.com/](https://xbooru.com/).

**Использование:**
> get.xbooru.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

## get.sankaku.sh ##
Качалка для сайта [https://chan.sankakucomplex.com/](https://chan.sankakucomplex.com/).

**Использование:**
> get.sankaku.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

**Конфиг:**

> sanlogin=ВАШ ЛОГИН
> 
> sanpass=ВАШ ПАРОЛЬ

## get.wallhaven.sh ##
Качалка для сайта [https://wallhaven.cc/](https://wallhaven.cc/).

**Использование:**
> get.wallhaven.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

**Конфиг:**

> whapikey=ВАШ API-КЛЮЧ

## get.yandere.sh ##
Качалка для сайта [https://yande.re/](https://yande.re/).

**Использование:**
> get.yandere.sh набор\_тегов [каталог\_для\_сохранения]

Если второй параметр не указан, то он принимается равным первому.

## getpixiv.sh ##
Качалка для сайта [https://www.pixiv.net](https://www.pixiv.net).
Умеет блокировать (flock) каталог, в который производится закачка, удалять дубли после закачки.

**Использование:**
> getpixiv.sh id\_автора каталог\_для\_сохранения [флаг]

id\_автора - значение параметра "id" в URL вида "https://www.pixiv.net/en/users/12345/artworks" или "https://www.pixiv.net/en/users/12345"

каталог\_для\_сохранения - каталог, в который скрипт будет закачивать изображения. Будет создан каталог "первая\_буква/каталог\_для\_сохранения"

флаг - любой символ или слово. Если этот параметр указан, то после отработки скрипт не удаляет временные файлы.

**Конфиг:**

> pixid=ВАШ ЛОГИН
> 
> pixpass=ВАШ ПАРОЛЬ

Во время работы скрипта API-токен сохраняется в файл ~/.config/pixivtoken.conf.

## ugoira-to-mp4.sh ##
Качалка и конвертер анимации с сайта [https://www.pixiv.net](https://www.pixiv.net).

**Использование:**
> ugoira-to-mp4.sh id\_поста [формат]

id\_поста - число в конце URL страницы с анимацией вида https://www.pixiv.net/en/artworks/74931962

формат - формат выходного файла. Может принимать следующие значения:

gif - gif-анимация. Имя выходного файл имеет вид "id\_поста.gif"

webp - webp-анимация. Имя выходного файл имеет вид "id\_поста.webp"

apng - анимированный png-файл. Имя выходного файл имеет вид "id\_поста.png"

coub - mp4-файл с видео в формате x264. Понятен большинству плееров и редактору на сайте coub.com. Имя выходного файл имеет вид "id\_поста.coub.mp4"

mkv - mkv-файл с видео в формате x264 без специальной обработки. Имя выходного файл имеет вид "id\_поста.mkv"

Если не указан, то создаётся mp4-файл с видео в формате x264 без специальной обработки. Имя выходного файл имеет вид "id\_поста.mp4"

Преобразование происходит во временном каталоге внутри /tmp. Результирующий файл сохраняется в текущем каталоге.

**Конфиг:**

> pixid=ВАШ ЛОГИН
> 
> pixpass=ВАШ ПАРОЛЬ

Во время работы скрипта API-токен сохраняется в файл ~/.config/pixivtoken.conf.

Для своей работы скрипт использует утилиты mogrify и convert из ImageMagick, ffmpeg, apngasm, mkvmerge из mkvtoolnix.

## getseiga.sh ##
Качалка для сайта [https://seiga.nicovideo.jp](https://seiga.nicovideo.jp)

**Использование:**
> getseiga.sh id\_автора каталог\_для\_сохранения [флаг]

id\_автора - число после "/illust/" в URL вида "https://seiga.nicovideo.jp/user/illust/12345"

каталог\_для\_сохранения - каталог, в который скрипт будет закачивать изображения. Будет создан каталог "seiga/первая\_буква/каталог\_для\_сохранения"

флаг - любой символ или слово. Если этот параметр указан, то после отработки скрипт не удаляет временные файлы.

**Конфиг:**

> seigaid=ВАШ ЛОГИН
> 
> seigapass=ВАШ ПАРОЛЬ

# Примечание #

Скрипты требуют наличия в системе jq, pcregrep, curl, wget, aria2c и coreutils не ниже 8.21.

Скрипты пишутся и проверяются на работоспособность только в bash. Работоспособность в других оболочках не гарантируется.
